package cn.sc.summer.daoapi.dao;

import cn.sc.summer.daoapi.po.TestTree;
import cn.sc.summer.mybatis.annotation.dynamicdatasource.MapperSource;
import cn.sc.summer.mybatis.base.SuperMapper;
import cn.sc.summer.mybatis.enums.DataSourceEnum;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 接口：二叉树接口测试
 *
 * @author a-xin
 * @date 2024/5/27 11:43
 */
@Mapper
@MapperSource(value = DataSourceEnum.SLAVE)
public interface TestTreeMapper extends SuperMapper<TestTree> {

    /**
     * 多数据源测试用例
     *
     * @return 所有数据
     */
    @MapperSource(value = DataSourceEnum.SLAVE)
    List<TestTree> selectAllTest();

    /**
     * 测试模糊查询加密数据
     *
     * @param param      模糊查询值
     * @param encryptKey 加密秘钥
     * @return 返回结果
     */
    List<TestTree> selectLikeEncrypt(@Param("param") String param,
                                     @Param("encryptKey") String encryptKey);

    /**
     * 测试更新
     *
     * @param id   ID
     * @param code code
     */
    @MapperSource(value = DataSourceEnum.MASTER)
    void updateTestTree(@Param("id") String id, @Param("code") String code);

    /**
     * 测试新增
     *
     * @param id   ID
     * @param code code
     */
    @MapperSource(value = DataSourceEnum.SLAVE)
    void addTestTree(@Param("id") String id, @Param("code") String code);

}
